package cn.sola.socket.serve;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

import org.junit.Test;

import cn.sola.socket.serve.thread.WeatherThread;

/**
 * @author: kangxiaohui
 * @date：2017年12月31日 下午7:08:32
 * @version 1.0
 * 
 */
public class WeatherServer {

	@Test
	public void index() {
		System.out.println("-------------");
	}

	@Test
	public void testServe() throws IOException {
		
		//创建socket服务端
		//应用服务端口建议在1万以上
		ServerSocket serverSocket = new ServerSocket(12345);
		System.out.println("启动天气查询服务...");
		
		while(true){
			try {
				//接收客户端链接
				//阻塞方法
				Socket socket = serverSocket.accept();
				
				//开户一个新线程
				//新线程处理内容就是,接收客户端请求数据,向客户端发送数据
				//可以使用线程池
				//使用ThreadPoolExecutor
				new Thread(new WeatherThread(socket)).start();

				
			} catch (Exception e) {
				e.printStackTrace();
			}finally{
				//释放资源
				
//				dataInputStream.close();
//				
//				dataOutputStream.close();
				//服务端一般不主动关闭socket
				//socket.close();
				
			}
		}
	}
}
